﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LiteFramework.Contract
{
    public interface IFactory : IDisposable
    {
        T Create<T>();
        T Create<T>(string key);
        T Create<T>(object argumentsAsAnonymousType);
        T Create<T>(IDictionary arguments);
        object Create(Type type);
    }
}